package com.ruoyi.web.core.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户偏好档案对象 user_preferences
 * 
 * @author ruoyi
 * @date 2025-10-27
 */
public class UserPreferences extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 用户ID */
    @Excel(name = "用户ID")
    private String userId;

    /** 用户偏好向量 */
    @Excel(name = "用户偏好向量")
    private String preferenceVector;

    /** 偏好标签 */
    @Excel(name = "偏好标签")
    private String favoriteTags;

    /** 偏好演员 */
    @Excel(name = "偏好演员")
    private String preferredActors;

    /** 偏好平台 */
    @Excel(name = "偏好平台")
    private String preferredPlatforms;

    /** 平均评分 */
    @Excel(name = "平均评分")
    private BigDecimal avgRating;

    /** 总观看时长 */
    @Excel(name = "总观看时长")
    private Long totalWatchTime;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date createdAt;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date updatedAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setUserId(String userId) 
    {
        this.userId = userId;
    }

    public String getUserId() 
    {
        return userId;
    }

    public void setPreferenceVector(String preferenceVector) 
    {
        this.preferenceVector = preferenceVector;
    }

    public String getPreferenceVector() 
    {
        return preferenceVector;
    }

    public void setFavoriteTags(String favoriteTags) 
    {
        this.favoriteTags = favoriteTags;
    }

    public String getFavoriteTags() 
    {
        return favoriteTags;
    }

    public void setPreferredActors(String preferredActors) 
    {
        this.preferredActors = preferredActors;
    }

    public String getPreferredActors() 
    {
        return preferredActors;
    }

    public void setPreferredPlatforms(String preferredPlatforms) 
    {
        this.preferredPlatforms = preferredPlatforms;
    }

    public String getPreferredPlatforms() 
    {
        return preferredPlatforms;
    }

    public void setAvgRating(BigDecimal avgRating) 
    {
        this.avgRating = avgRating;
    }

    public BigDecimal getAvgRating() 
    {
        return avgRating;
    }

    public void setTotalWatchTime(Long totalWatchTime) 
    {
        this.totalWatchTime = totalWatchTime;
    }

    public Long getTotalWatchTime() 
    {
        return totalWatchTime;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("preferenceVector", getPreferenceVector())
            .append("favoriteTags", getFavoriteTags())
            .append("preferredActors", getPreferredActors())
            .append("preferredPlatforms", getPreferredPlatforms())
            .append("avgRating", getAvgRating())
            .append("totalWatchTime", getTotalWatchTime())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
